Web services is a technology that is achieving wide acceptance because of its suitability for solving the problems of interoperability and integration within distributed and heterogeneous data processing networks. Web services technologies enable automation of services to Web users and Web-connected application programs, as well as collaborative business-to-business data processing operations, for services such as provision of stock prices and stock purchasing. Customer Relationship Management and storage management, for example.
A typical Web services solution includes a Web server system implementing service provision in response to service requests, using a messaging infrastructure (such as the Simple Object Access Protocol (SOAP) using XML-based messages and HTTP) and using a service discovery mechanism (for example UDDI). Web services providers often run a plurality of servers in parallel, for scalability and reliability. Service requesters then send their requests via a Web services gateway that acts as a proxy and request dispatcher for the plurality of servers. As Web services proliferate, the overall demands on network bandwidth will continue to increase and so there is a need to improve communication efficiency in Web services networks.
Publish/subscribe messaging is a known messaging technology that may be used in a Web services network and other environments. In a publish/subscribe network, one or many publisher applications send messages to the network and subscriber applications register subscriptions to indicate their interest in receiving certain types of message. If a published message matches one of the subscriptions stored for a particular subscriber, the message is passed to the subscriber. Many publish/subscribe solutions use topic-based subscriptions in which topics specified in message headers can be matched with stored topics.
Typical publish/subscribe networks store subscriptions and perform matching of messages and stored subscriptions at a message broker that is an intermediary between the publisher applications and the subscribers. By implementing routing and message transformation capabilities at a broker, or a distributed broker network, publisher and subscriber programs can be shielded from the complexities of a heterogeneous network, such that the applications are far easier to develop and maintain. Regardless of the significant advantages of simplifying communications for publisher and subscriber applications, communication overheads are significant for large messages. Some publish/subscribe solutions utilize multicast, in which a single message is routed to multiple network listeners in a network. However, not all systems support multicasting with the result that, for N subscribers, N separate Put operations are required to send the message. For a distributed broker network that does not support multicast, N messages will be sent between brokers at intermediate nodes of the network.